/*
@title: Fallen Sand (Sandbox)
@description: A simple, easy-to-use physics sandbox with sand, water, and concrete.
@author: Chris
@tags: []
@addedOn: 2024-05-28
@img: ""
*/

const cursor = "p";
const sand = "s";
const water = "w";
const concrete = "c";
const background = "b";

// Empty Icon
const eIcon1 = "r";
const eIcon2 = "t";
const eIcon3 = "y";
const eIcon4 = "u";
const eIconTop ="i";
const eIconBottom = "o";
const eIconRight = "a";
const eIconLeft = "d";
const eIconMiddle = "f";

// Clear Icon
const pIcon1 = "!";
const pIcon2 = "@";
const pIcon3 = "#";
const pIcon4 = "$";
const pIconTop ="%";
const pIconBottom = "^";
const pIconRight = "&";
const pIconLeft = "*";
const pIconMiddle = "(";



// Sand Icon
const sIcon1 = "1";
const sIcon2 = "2";
const sIcon3 = "3";
const sIcon4 = "4";
const sIconTop = "5";
const sIconBottom = "6";
const sIconRight = "7";
const sIconLeft = "8";
const sIconMiddle = "9";

// Water Icon
const wIcon1 = "[";
const wIcon2 = "{";
const wIcon3 = "]";
const wIcon4 = "}";
const wIconTop = "m";
const wIconBottom = "|";
const wIconRight = ":";
const wIconLeft = ";";
const wIconMiddle = "'";

// Concrete Icon
const cIcon1 = "\"";
const cIcon2 = "<";
const cIcon3 = ",";
const cIcon4 = ">";
const cIconTop = "g";
const cIconBottom = "?";
const cIconRight = "/";
const cIconLeft = "q";
const cIconMiddle = "e";


setLegend(
  [cursor, bitmap`
.....000000.....
.....000000.....
.....000000.....
.....000000.....
.....000000.....
.....000000.....
.....000000.....
.....000000.....
0000000000000000
.00000000000000.
..000000000000..
...0000000000...
....00000000....
.....000000.....
......0000......
.......00.......`],
  [sand, bitmap`
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
`],
   [water, bitmap`
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555`],
   [concrete, bitmap`
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111`],
  [background, bitmap`
7777777777777777
7777777777777777
7777777777777777
7777777777777777
7777777777777777
7777777777777777
7777777777777777
7777777777777777
7777777777777777
7777777777777777
7777777777777777
7777777777777777
7777777777777777
7777777777777777
7777777777777777
7777777777777777`],
  [sIcon1, bitmap`
0000000000000000
0000000000000000
0000000000000000
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666`],
  [sIcon2, bitmap`
0000000000000000
0000000000000000
0000000000000000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000`],
  [sIcon3, bitmap`
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0000000000000000
0000000000000000
0000000000000000`],
  [sIcon4, bitmap`
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
0000000000000000
0000000000000000
0000000000000000`],
  [sIconTop, bitmap`
0000000000000000
0000000000000000
0000000000000000
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666`],
  [sIconBottom, bitmap`
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
0000000000000000
0000000000000000
0000000000000000`],
  [sIconRight, bitmap`
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000
6666666666666000`],
  [sIconLeft, bitmap`
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666
0006666666666666`],
  [sIconMiddle, bitmap`
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666`],
  
  [wIcon1, bitmap`
0000000000000000
0000000000000000
0000000000000000
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555`],
  [wIcon2, bitmap`
0000000000000000
0000000000000000
0000000000000000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000`],
  [wIcon3, bitmap`
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0000000000000000
0000000000000000
0000000000000000`],
  [wIcon4, bitmap`
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
0000000000000000
0000000000000000
0000000000000000`],
  [wIconTop, bitmap`
0000000000000000
0000000000000000
0000000000000000
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555`],
  [wIconBottom, bitmap`
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
0000000000000000
0000000000000000
0000000000000000`],
  [wIconRight, bitmap`
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000
5555555555555000`],
  [wIconLeft, bitmap`
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555
0005555555555555`],
  [wIconMiddle, bitmap`
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555
5555555555555555`],

  [cIcon1, bitmap`
0000000000000000
0000000000000000
0000000000000000
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111`],
  [cIcon2, bitmap`
0000000000000000
0000000000000000
0000000000000000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000`],
  [cIcon3, bitmap`
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0000000000000000
0000000000000000
0000000000000000`],
  [cIcon4, bitmap`
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
0000000000000000
0000000000000000
0000000000000000`],
  [cIconTop, bitmap`
0000000000000000
0000000000000000
0000000000000000
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111`],
  [cIconBottom, bitmap`
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
0000000000000000
0000000000000000
0000000000000000`],
  [cIconRight, bitmap`
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000
1111111111111000`],
  [cIconLeft, bitmap`
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111
0001111111111111`],
  [cIconMiddle, bitmap`
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111
1111111111111111`],
  
  [eIcon1, bitmap`
0000000000000000
0000000000000000
0000000000000000
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222`],
  [eIcon2, bitmap`
0000000000000000
0000000000000000
0000000000000000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000`],
  [eIcon3, bitmap`
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0000000000000000
0000000000000000
0000000000000000`],
  [eIcon4, bitmap`
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
0000000000000000
0000000000000000
0000000000000000`],
  [eIconTop, bitmap`
0000000000000000
0000000000000000
0000000000000000
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222`],
  [eIconBottom, bitmap`
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
0000000000000000
0000000000000000
0000000000000000`],
  [eIconRight, bitmap`
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000
2222222222222000`],
  [eIconLeft, bitmap`
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222
0002222222222222`],
  [eIconMiddle, bitmap`
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222
2222222222222222`],

  [pIcon1, bitmap`
0000000000000000
0000000000000000
0000000000000000
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333`],
  [pIcon2, bitmap`
0000000000000000
0000000000000000
0000000000000000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000`],
  [pIcon3, bitmap`
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0000000000000000
0000000000000000
0000000000000000`],
  [pIcon4, bitmap`
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
0000000000000000
0000000000000000
0000000000000000`],
  [pIconTop, bitmap`
0000000000000000
0000000000000000
0000000000000000
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333`],
  [pIconBottom, bitmap`
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
0000000000000000
0000000000000000
0000000000000000`],
  [pIconRight, bitmap`
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000
3333333333333000`],
  [pIconLeft, bitmap`
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333
0003333333333333`],
  [pIconMiddle, bitmap`
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333
3333333333333333`],
   );


let level = 0; 
const levels = [
  map`
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbb1552bbb[mm{bbb"gg<bbbriitbbb!%%@bbbb
bbbb8997bbb;'':bbbqee/bbbdffabbb*((&bbbb
bbbb8997bbb;'':bbbqee/bbbdffabbb*((&bbbb
bbbb3664bbb]||}bbb,??>bbbyooubbb#^^$bbbb
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
....................p...................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................
........................................`,
  ];


setMap(levels[level]),

setPushables({
  [ cursor ]: []
});


onInput("s", () => {
  getFirst(cursor).y += 1; // positive y is downwards
});

onInput("d", () => {
  getFirst(cursor).x += 1;
});

onInput("w", () => {
  getFirst(cursor).y -= 1;
});

onInput("a", () => {
  getFirst(cursor).x -= 1;
});

onInput("i", () => {
  text(); // Toggles text
});

let tool = "remove"; // Denotes which tool is currently active

let intervalId;
let intervalId2;
let intervaLId3;

onInput("l", () => { // Main action input
  const x = getFirst(cursor).x;
  const y = getFirst(cursor).y;
  if (y <= 4) { // NOT within the white space
    if (y >= 0 && y <= 3) { // Within the rows of the five icons
      if (x >= 4 && x <= 7) { // Within the yellow square
        tool = "sand";
      }

      else if (x >= 11 && x <= 14) { // Blue square
        tool = "water";
      }

      else if (x >= 18 && x <= 21) { // Gray Square
        tool = "concrete";
      }

      else if (x >= 25 && x <= 28) { // White square
        tool = "remove";
      }

      else if (x >= 32 && x <= 35) { // Red square 
        for (let x1 = 0; x1 < 40; x1++) {
          for (let y1 = 6; y1 < 40; y1++) {
          if(inTheTile(x1, y1) != "cursor") {
            clearTile(x1, y1);
          }
      }
    }
  }
    }
  }

   

  else { // Within the white space
    if (tool == "sand" && y < 39) {
      clearTile(x, y + 1);
      addSprite(x, y+1, sand); // Always affects space DIRECTLY BELOW it and spaces to the LEFT and RIGHT of it
      if (x > 0) {
        clearTile(x - 1, y + 1);
        addSprite(x-1, y+1, sand);
      }
      if (x < 39) {
        clearTile(x + 1, y + 1);
        addSprite(x+1, y + 1, sand);
      }
    }
    else if (tool == "water" && y < 39) {
      clearTile(x, y + 1);
      addSprite(x, y+1, water); 
      if (x > 0) {
        clearTile(x - 1, y + 1);
        addSprite(x-1, y+1, water);
      }
      if (x < 39) {
        clearTile(x + 1, y + 1);
        addSprite(x+1, y + 1, water);
      }
    }
    else if (tool == "concrete") {
      clearTile(x, y + 1);
      addSprite(x, y+1, concrete);
      if (x > 0) {
        clearTile(x - 1, y + 1);
        addSprite(x-1, y+1, concrete);
      }
      if (x < 39) {
        clearTile(x + 1, y + 1);
        addSprite(x+1, y + 1, concrete);
      }
    }
    else if (tool == "remove" && y < 39) {  
      clearTile(x, y +1);
      if (x > 0) {
        clearTile(x-1, y+1);
      }
      if (x < 39) {
        clearTile(x+1, y+1);
      }
    }
  }
});


let textOn = false; 
text();
function text() {
  if (!textOn) {
  addText("     l: Action",{
  x:1,
  y:3,
  color: color`0`
})
  
  addText("   Yellow: Sand",{
  x:1,
  y:5,
  color: color`6`
})
  addText("    Blue: Water",{
  x:1,
  y:7,
  color: color`5`
})
  addText("  Gray: Concrete",{
  x:1,
  y:9,
  color: color`1`
})
   addText("    White: Erase",{
  x:1,
  y:11,
  color: color`0`
})
   addText("  Red: Clear All",{
  x:1,
  y:13,
  color: color`3`
})
    addText("  i: Toggle Text", {
      x:1,
  y:15,
  color: color`L`
    })
    textOn = true;
}
  else {
    clearText();
    textOn = false;
}
}



function inTheTile (x,y) { 
  let result = "empty";
  let tileContents = getTile(x, y);
  for (let i = 0; i < tileContents.length; i++){
    if (tileContents[i].type == cursor) {
      return "cursor";
    }
    else if (tileContents[i].type == sand){
      result = "sand";
    }
    else if (tileContents[i].type == water) {
      result = "water";
  }
    else if (tileContents[i].type == concrete) {
      result = "concrete";
  }
}
  return result;
}



function doSomething() { // Selects a random tile in white space and does something if there's a sand/water block there
  let x = Math.trunc(Math.random() * 40);
  let y = Math.trunc((Math.random() * 34) + 6);
  
  let inTile = inTheTile(x, y);


    if (inTile == "sand" && y < 39) {
    let inBelowTile = inTheTile(x, y+1); // Ensures that tile below is empty
      if (inBelowTile == "empty") {
        clearTile(x, y);
        addSprite(x, y + 1, sand);
      }
      else if (inBelowTile == "water") { // Swaps places with water when falling into it
        clearTile(x, y);
        clearTile(x, y + 1);
        addSprite(x, y, sand);
        addSprite(x, y - 1, water);
      }
        
  }
  else if (inTile == "water") {
    let direction = Math.trunc(Math.random() * 8) + 1; // Water randomly goes down, to the right, or to the left

    if (direction < 5) { // 1-4: Move down
      direction = 1;
    }
    else if (direction < 7) { // 5-6: Move to the left
      direction = 2;
    }
    else { // 7-8: Move to the right
      direction = 3;
    }

    if (direction == 1 && y < 39) { // Down
      let inBelowTile = inTheTile(x, y+1); // Ensures that tile below is empty
      if (inBelowTile == "empty") {
        clearTile(x, y);
        addSprite(x, y + 1, water);
      }
  }
    else if (direction == 2 && x > 0) { // left
      let inLeftTile = inTheTile(x-1, y);
      if (inLeftTile == "empty") {
        clearTile(x, y);
        addSprite(x - 1, y, water);
      }
  }
    else if (direction == 3 && x < 39) { // Right
      let inRightTile = inTheTile(x+1, y);
      if (inRightTile == "empty") {
        clearTile(x, y);
        addSprite(x + 1, y, water);
      }
    }
}
}



afterInput(() => {

})

// SO many setIntervals to simulate movement. Ignore after this
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);
setInterval(() => {doSomething()}, 1);

